package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;

import com.dhcc.DRGsHosp.core.domain.Order;

/**
 * @title		:OrderApplication.java
 * @description	:
 * @author		:lileizheng
 * @date		:2015年11月12日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014 
 */
public interface OrderApplication {

	/**
	 * 
	 * @methodname    :getOrderQuotaValue1
	 * @description   : 获取医嘱分析页面相关指标数据
	 * @param         :
	 * @author        :WENYI
	 * @return        :
	 * @date          :2017年6月28日
	 */
	public Map<String, Object> getOrderQuotaValue1(Order order);
	/**
	 * 
	 * @methodname    :getOrderAnalysisResult
	 * @description   : 获取医嘱分析明细页面列表数据 
	 * @param         :
	 * @author        :WENYI
	 * @return        :
	 * @date          :2017年6月28日
	 */
	public List<Map<String, Object>> getOrderAnalysisResult(Order order);
	/**
	 * 
	 * @methodname    :getOrderAnalysisResultTotal
	 * @description   : 获取医嘱分析明细页面汇总数据
	 * @param         :
	 * @author        :WENYI
	 * @return        :
	 * @date          :2017年6月28日
	 */
	public List<Map<String, Object>> getOrderAnalysisResultTotal(Order order);
	/**
	 * 
	 * @methodname    :getADRGBy
	 * @description   : 获取覆盖ADRG
	 * @param         :
	 * @author        :WENYI
	 * @return        :
	 * @date          :2017年6月28日
	 */
	public List<Map<String, Object>> getADRGBy(Order order,String groupScheme);
	/**
	 * 
	 * @methodname    :getDRGsBy
	 * @description   : 获取覆盖DRG
	 * @param         :
	 * @author        :WENYI
	 * @return        :
	 * @date          :2017年6月28日
	 */
	public List<Map<String, Object>> getDRGsBy(Order order,String groupScheme);
	/**
	 * 
	 * @methodname    :findMedicalRecord
	 * @description   : 
	 * @param         :
	 * @author        :WENYI
	 * @return        :
	 * @date          :2017年6月28日
	 */
	public List<Map<String, Object>> findMedicalRecord(Order order);

	/**
	 * @methodname    :saveOrder
	 * @description   :保存医嘱项
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @throws Exception 
	 * @date          :2016年1月15日
	 */
	public void saveOrder(List<Order> o,Map<String,Object> caseInfoMap,Map<String,String> orderFeeType) throws Exception;

	/**
	 * @methodname    :updateMedicalrecord
	 * @description   :更新首页recordid
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年1月21日
	 */
	public void updateMedicalrecord(String recordId, String orderMrId);

	/**
	 * @methodname    :getOrderAnalysisResultTotalFee
	 * @description   : 获取总费用
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年2月16日
	 */
	List<Map<String, Object>> getOrderAnalysisResultTotalFee(Order order);
	/**
	 * 
	 *  getCaseInfo.  
	 *  @Description：查询医嘱明细表需要的相关病例信息
	 *  @Author WENYI
	 *  @param pmainIndex
	 * @param stdYear 
	 *  @return 
	 *  @Date:2017年8月21日下午4:41:26
	 */
	public Map<String,Object> getCaseInfo(String pmainIndex, String stdId,String groupScheme);
	/**
	 * 
	 *  getOrderFeeType.  
	 *  @Description：查询医嘱费用分类与费用五大类的对应关系
	 *  @Author WENYI
	 *  @return 
	 *  @Date:2017年8月21日下午4:40:35
	 */
	public Map<String,String> getOrderFeeType();
	/**
	 * 
	 *  getCaseByMrNoIndate.  
	 *  @Description：通过病案号与入院日期查询PMAININDEX
	 *  @Author WENYI
	 *  @param mrNo
	 *  @param inDate
	 *  @return 
	 *  @Date:2017年8月21日下午4:40:43
	 */
	Map<String,Object> getCaseByMrNoIndate(String mrNo,String inDate);
	/**
	 * 
	 *  saveOrderDep.  
	 *  @Description：存储医嘱开单科室表
	 *  @Author WENYI
	 *  @return 
	 *  @Date:2017年8月22日上午9:49:10
	 */
	public int saveOrderDep();
}
